package com.hxzy.shop.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hxzy.shop.common.dto.auth.req.AccountListReq;
import com.hxzy.shop.common.dto.auth.resp.AccountListResp;
import com.hxzy.shop.dto.auth.resp.LoadUserResp;
import com.hxzy.shop.entity.AdminAccount;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 账户操作
 */
public interface AccountMapper extends BaseMapper<AdminAccount> {

    /**
     * 根据账户名查询用户信息(总部账户表)
     * @param account
     * @return
     */
    AdminAccount findAccountByAccount(@Param("account") String account);


    /**
     * 根据账户ID查询用户信息和拥有的角色菜单权限
     * @param accountId
     * @return
     */
    LoadUserResp findAccountAndRoleByAccountId(@Param("accountId") Long accountId);

    /**
     * 根据条件查询账户列表信息(当前商户的信息)
     * @param name
     * @param phone
     * @param roleId
     * @return
     */
    List<AccountListResp> findAccountListRespByCondition(@Param("name") String name,
                                                         @Param("phone") String phone,
                                                         @Param("roleId") Long roleId);

    /**
     * 根据sub查询登录账户
     */
    LoadUserResp getAccount(@Param("sub") String sub ,@Param("merchantId")String merchantId);

    /**
     * 分页查询
     * @param req
     * @return
     */
    List<AccountListResp> search(@Param(value = "req") AccountListReq req);
}